#pragma once

#include "IXBaseObj.h"

/**
 *  IXGifMgr Interface.
 *
 */
class ExportXSkinLib IXGifMgr : public IXBaseObj
{
    DEF_INTERFACE(IXGifMgr, _T("{4DCFD3BF-9A46-4744-97D1-82CEA7251413}"));

public:
    virtual XGIF    STDMETHODCALLTYPE   LoadGif(IN LPCTSTR szXNC) = 0;
    virtual HRESULT STDMETHODCALLTYPE   ReleaseGif(IN XGIF xGif) = 0;

    virtual HRESULT STDMETHODCALLTYPE   GetGifSize(IN XGIF xGif, OUT SIZE* pSizeGif) = 0;

    virtual DWORD   STDMETHODCALLTYPE   GetFrameCount(IN XGIF xGif) = 0;
    virtual HRESULT STDMETHODCALLTYPE   GetFrames(IN XGIF xGif, OUT XIMAGE* pArrFrames, IN DWORD dwMaxCount) = 0;

    virtual DWORD   STDMETHODCALLTYPE   GetDelayValueCount(IN XGIF xGif) = 0;
    virtual HRESULT STDMETHODCALLTYPE   GetDelayValues(IN XGIF xGif, OUT DWORD* pArrValues, IN DWORD dwMaxCount) = 0;
};
